package com.tgu.home_action.service.admin;

import com.tgu.home_action.pojo.*;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotNull;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;

public interface AdminVolunteerService {
    /**
     * 查询志愿者
     */
    ResponseData<Page<VolunteerInformation>> getVolunteer(VolunteerInformation volunteerInformation);

    /**
     * 通过ID查询志愿者
     */
    ResponseData<VolunteerInformation> getVolunteerById(Integer id);

    /**
     * 插入单个志愿者
     */
    ResponseData<Object> insertVolunteer(VolunteerInformation volunteerInformation);

    /**
     * 通过excel插入志愿者
     */
    ResponseData<List<VolunteerInformation>> insertVolunteerByExcel(MultipartFile file) throws IOException;

    /**
     * 查询志愿者活跃天数
     */
    ResponseData<Integer> getVolunteerLiveNessDay(Integer volunteerId) throws ParseException;

    /**
     * 查询志愿者参与的案件数
     */
    ResponseData<Integer> getVolunteerTotalCaseNum(Integer volunteerId);

    /**
     * 查询志愿者参与的已完成的案件数
     */
    ResponseData<Integer> getVolunteerFinishCaseNum(Integer volunteerId);

    /**
     * 修改志愿者信息
     */
    ResponseData<Object> updateVolunteerInfo(VolunteerInformation volunteerInformation);

    /**
     * 修改志愿者头像
     */
    ResponseData<Object> updateAvatar(@NotNull(message = "id不能为空") Integer id, @NotNull(message = "avatarUrl不能为空") String avatarUrl);

    /**
     * 查询志愿者参与的案件
     */
    ResponseData<Page<Case>> getVolunteerCases(Case nowCase);

    /**
     * 删除志愿者用户
     */
    ResponseData<Object> delVolunteer(Integer volunteerId);

    /**
     * 查询当日活跃的志愿者
     */
    ResponseData<List<Volunteer>> getLiveNessVolunteer() throws ParseException;
}
